package com.soft.javase.day06.regex;

import java.util.Scanner;

/**
 * @author yzg
 * @desc TODO
 * @date 2025/4/24
 */
public class PasswordStrength {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入密码: ");
        String password = scanner.nextLine();

        String strength = checkPasswordStrength(password);
        System.out.println("密码强度: " + strength);
    }

    public static String checkPasswordStrength(String password) {
        // 弱密码: 纯数字、纯字母，或长度<6
        if (password.matches("^\\d+$") ||
                password.matches("^[a-zA-Z]+$") ||
                password.length() < 6) {
            return "弱";
        }

        // 检查是否包含数字、字母、特殊字符
        boolean hasDigit = password.matches(".*[0-9].*");
        boolean hasLetter = password.matches(".*[a-zA-Z].*");
        boolean hasSpecialChar = password.matches(".*[^a-zA-Z0-9].*");

        // 强密码: 包含数字、字母和特殊字符
        if (hasDigit && hasLetter && hasSpecialChar) {
            return "强";
        }
        // 中等密码: 包含数字和字母，但没有特殊字符
        else if (hasDigit && hasLetter) {
            return "中";
        }
        // 其他情况（如只有数字+特殊字符，或字母+特殊字符等）也为中等
        else {
            return "中";
        }
    }
}